<?php

namespace App\Models;


class DictData extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'dict_data';
    protected $primaryKey = 'dict_code';
//    定义自动操作时间
    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';
    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'dict_code',
        'dict_name',
        'dict_sort',
        'dict_label',
        'dict_value',
        'dict_type',
        'css_class',
        'list_class',
        'status',
        'is_default',
        'create_by',
        'create_time',
        'update_by',
        'update_time',
        'remark',
    );

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );

    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }

    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        $table = "CREATE TABLE IF NOT EXISTS $tablename (
      `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
    `dict_name` VARCHAR(64) NULL DEFAULT NULL COMMENT '字典名称',
      `dict_sort` int(4) DEFAULT '0' COMMENT '字典排序',
      `dict_label` varchar(100) DEFAULT '' COMMENT '字典标签',
      `dict_value` varchar(100) DEFAULT '' COMMENT '字典键值',
      `dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
      `css_class` varchar(100) DEFAULT NULL COMMENT '样式属性（其他样式扩展）',
      `list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式',
      `is_default` char(1) DEFAULT 'N' COMMENT '是否默认（Y是 N否）',
      `status` char(1) DEFAULT '0' COMMENT '状态（0正常 1停用）',
      `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
      `create_time` datetime DEFAULT NULL COMMENT '创建时间',
      `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
      `update_time` datetime DEFAULT NULL COMMENT '更新时间',
      `remark` varchar(500) DEFAULT NULL COMMENT '备注',
      PRIMARY KEY (`dict_code`),
      KEY dict_type(`dict_type`)
    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='字典数据表';";
        return $table;
    }

//取单个值
    public function singleTypeValue($type)
    {
        $where = [
            'dict_type' => $type,
            'status' => 0,
        ];
        return $this->where($where)->value('dict_value');
    }

    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        // $array = ['name' => "varchar(1000) DEFAULT NULL COMMENT 'token'"];
        // return $array;
    }
}
